The present invention relates to a graphical user interface (GUI), and more particularly to an improved graphical filter dialog window system through which the user enters user-defined criteria for a data filtering process.
GUI interfaces are well known to the art. They employ graphical representations, or icons, of programs, applications, data files, and other computing objects. Icons and other interactive display elements are grouped into windows which may be any size up to and including the maximum screen size. The user xe2x80x9cexecutesxe2x80x9d an icon using a pointing device such as a mouse, track ball, touch-sensitive screen, or the like. Icon execution is dependent upon the icon type. For example, executing a program icon may run the program, executing an image file icon may display the image, and executing a folder icon may display the folder contents in a new window. Often, additional user control is available through xe2x80x9cpopupxe2x80x9d menus which may be brought up by operating the pointing device in an alternate manner on an icon. Popup menus may advantageously be context-sensitive in that the displayed menu options can be made to depend on icon association.
FIG. 1 shows a typical popup menu 10. The icons serve as launch points for additional dialog windows which display one or more input controls in one or more windows formatted in a convenient, readily comprehensible manner, such as an entry form. The individual input controls may take various forms such as text entry boxes, drop-down list boxes, check boxes, radio buttons, push buttons, or the like. GUI interfaces run on widely adopted commercial, business and personal computer operating systems such as the Microsoft Windows server, UNIX X-Windows, IBM OS/2, Linux, HP, and SUN operating systems. GUI interfaces are also used for most programs which run under these operating systems.
Data filtering, based upon user-defined criteria, is an important computing operation which occurs in many computing applications. For example, the operating system usually provides at least one filter for selecting files satisfying user-defined parameters, as exemplified by the xe2x80x9cFindxe2x80x9d operation provided in Microsoft Windows. Applications, such as databases, use filtering to select and present relevant information from a collection of objects, and such filtering is essential for managing large databases and complex data tree structures.
The prior art teaches the use of a graphical filter dialog window as the preferred approach for entry of user-desired filtering criteria in a GUI environment. The usual process is that the user enters the criteria in the graphical filter dialog window and then initiates the filtering process by operating on an xe2x80x9cOKxe2x80x9d button, xe2x80x9cStartxe2x80x9d button, or other intuitive option also contained within the filter dialog window. The computer then performs the filtering process and identifies objects meeting the filtering criteria, typically by displaying icons corresponding to the identified objects in a new window for easy user access. The filtered objects may be organized in a list or other structure. As shown in FIG. 1, the right hand pane contains the search results, however, the results can be displayed as a separate window as well.
Exemplary prior art graphical filter dialog notebooks are shown in FIGS. 2 and 3, where the filter selects objects, in the illustrated case tables, stored by a database program which meet the user-defined criteria. In the descriptions to follow, the expressions xe2x80x9cwindow(s)xe2x80x9d and xe2x80x9cnotebook(s)xe2x80x9d will be used interchangeably and are meant to refer to the GUI interface illustrated and other equivalent user interfaces. FIG. 2 shows a basic dialog window 20 corresponding to a default xe2x80x9cLocatexe2x80x9d tab 22. This window appears when the user selects the xe2x80x9cFilterxe2x80x9d option 12 from a popup menu 10 associated with a database 14, as illustrated in FIG. 1. The notebook page shown in FIG. 3 appears when the user clicks on the xe2x80x9cadvancedxe2x80x9d tab of the filter notebook shown in FIG. 2.
It will be observed that the prior art dialog window 20 shown in FIG. 2 provides no fewer than fifteen text input 24 and drop-down list 26 boxes under the xe2x80x9cColumnxe2x80x9d 28, xe2x80x9cComparisonxe2x80x9d 30, and xe2x80x9cValuesxe2x80x9d 32 headings. Additionally, up to seven additional selection buttons 34 and radial selectors 36 are provided. Still more user selections are illustrated in FIG. 3, which shows a second filter dialog window 40 obtainable by selecting the xe2x80x9cAdvancedxe2x80x9d tab 42 in FIG. 2. The Advanced tab 42 provides the large input box 44 shown in FIG. 3 in which the user may enter filtering criteria 46 in an application-specific language, such as a variant of the structured query language (SQL) commonly employed in database software. These prior art dialog windows provide the user with a vast array of powerful filtering criteria options.
However, these prior art graphical filter dialog windows also suffer from a number of disadvantages. Users, especially novice users, typically find complex dialog windows such as those shown in FIGS. 2 and 3 to be complicated and intimidating. It is not immediately clear what search results are obtained when a value input is left blank or how many results will be returned. The filter may ignore the corresponding column and return only those tables for which that column has a blank value. Alternatively, the filter may return all table values where the values column is left blank.
In response to this ambiguity, novice users are often compelled to provide entries in each of the five value text boxes 24, even though only one or two filtering criteria may be required. The superfluous entries may have no effect, or worse, may constrain the filtering process in some unintended manner. Similar confusion may arise if two or more column entries are identical, for example two Name column entries with different value entries. Whether the system performs an AND or OR logical function is unclear to the user. It is also not clear whether leaving the top row blank and entering filtering criteria into lower rows is permissible. The novice user in particular usually has no need or desire to construct complex filtering criteria, and would prefer a simplified and intuitive graphical filter dialog window.
Another problem with prior art graphical filter dialog windows is that they provide no indication prior to initiating the filtering process as to how many objects will be returned. The filtering and identifying of the located objects may be quite time consuming, especially if the filtering criteria is inadvertently broad, resulting in a large number of located objects. In such a case, the user must re-start the filtering process. It would be valuable for the user to know ahead of time how many objects will be returned for a particular set of user-defined criteria prior to initiating the filtering, so that the criteria may be modified to identify a reasonable number of objects.
The present invention contemplates an improved graphical filter dialog window system and method which overcomes these limitations and others.
In accordance with one aspect of the present invention, a dialog window for entering user-defined filtering criteria for identifying certain objects within a group of objects is disclosed. A criteria input provides for specifying, together with an associated object property, filtering criteria. A numeric display shows the number of objects which satisfy the user-defined filtering criterion. A button provides for initiating the filtering.
In accordance with another aspect of the present invention, a method for filtering a database and identifying objects located by the filtering is disclosed. Filtering criteria is received from an associated user through a dialog window which includes a plurality of inputs, each input together with an associated object property specifying a filtering criterion and each input further having a selector operable by the associated user. The database is filtered, the filtering based only upon the filtering criteria selected during the receiving. The objects located by the filtering are identified.
In accordance with yet another aspect of the present invention, a dialog window for entering user-defined filtering criteria by which certain objects within a collection of objects may be identified is disclosed. A criterion input is provided for specifying a range of values of an associated property of the objects in the collection. A selector corresponding to the criterion input is also provided, whereby the user indicates whether filtering will be performed with respect to the property. A button is provided for initiating the filtering.
One advantage of the present invention is that it provides a less intimidating user interface, especially for the novice user.
Another advantage of the present invention is that it clarifies which filtering criteria are operative.
Another advantage of the present invention is that it reduces the amount of user input necessary to implement the filtering operations most often employed.
Yet another advantage of the present invention is that it provides the user with a count of the number of objects which will be identified using a given set of filtering criteria before filtering actually occurs, so that the user can efficiently optimize the filtering criteria to identify a reasonable number of objects.
Still further advantages and benefits of the present invention will become apparent to those of ordinary skill in the art upon reading and understanding the following detailed description.